home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_sharutils.idb / usr / freeware / bin / mailshar.z / mailshar
Text File  |  2000-04-13  |  2KB  |  88 lines

  1. #! /sbin/sh
  2. # Mail a multi-part shar from a list of files.
  3. # Copyright (C) 1990, 1994, 1995 Free Software Foundation, Inc.
  4. # Franτois Pinard <pinard@iro.umontreal.ca>, 1991.
  5.  
  6. package="sharutils"
  7. version="4.2.1"
  8.  
  9. prefix='/usr/freeware'
  10. bindir="${prefix}/bin"
  11. transform='s,x,x,'
  12.  
  13. shar=$bindir/`echo shar | sed "$transform"`
  14. mail_files=$bindir/`echo mail-files | sed "$transform"`
  15.  
  16. progname=`echo $0 | sed -e 's,.*/,,'`
  17.  
  18. usage="\
  19. Usage: $progname [OPTION...] DEST FILE ...
  20.  
  21. with OPTION in:
  22.       --help      display this help and exit
  23.       --version   output version information and exit
  24.  
  25.   -s SIZE         decide size of each part in Kb, default 60
  26.   -M              decide how to send each file separately
  27.   -T              avoid calling compress, gzip nor uuencode
  28.   -B              force calling uuencode
  29.   -z              force calling gzip and uuencode
  30.   -Z              force calling compress and uuencode
  31.   -x              trace script
  32.  
  33. If none of -MTBzZ are given, -z is automatically selected if *none*
  34. of the FILEs have an .arc, .exz, .gif, .z, .gz, .Z, .zip or .zoo suffix."
  35.  
  36. temp=/usr/tmp/$$.shar
  37.  
  38. ### Decode the options.
  39.  
  40. size=60
  41.  
  42. while test $# -gt 0; do
  43.   case $1 in
  44.     -s) if test $# -gt 1; then size=$2; shift 2;
  45.         else echo "$usage"; exit 1; fi ;;
  46.     -[MTBzZ]) mode=$1; shift ;;
  47.     -x) trace=-x; set -x; shift ;;
  48.     --v* ) echo "$progname - $package $version"; exit 0 ;;
  49.     --h* ) echo "$usage"; exit 0 ;;
  50.     -) break ;;
  51.     -*) echo "Try \`$progname --help' for more information."; exit 1 ;;
  52.     *) break
  53.   esac
  54. done
  55.  
  56. if test $# -lt 2; then
  57.   echo "$usage"
  58.   exit 1
  59. fi
  60.  
  61. dest="$1"
  62. shift
  63. subject="$*"
  64.  
  65. ### Check if we should gzip.
  66.  
  67. if test -z "$mode"; then
  68.   mode=-z
  69.   find $* -type f -print 2> /dev/null > $temp
  70.   while read file; do
  71.     case "`echo $file | sed -n 's|.*/||;/\./s|.*\.||p' \
  72.     | tr '[A-Z]' '[a-z]'`" in
  73.       arc|exz|gif|gz|z|zip|zoo) mode=; break ;;
  74.     esac
  75.   done < $temp
  76.   rm $temp
  77. fi
  78.  
  79. ### Construct the multi-part shar files and mail them.
  80.  
  81. $shar $mode -P -L$size -o$temp -c -F $* \
  82.   && $mail_files $trace $dest shar "$subject" $temp* \
  83.   && rm ${temp}* \
  84.   && exit 0
  85.  
  86. rm -f ${temp}*
  87. exit 1
  88.